﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Iesi.Collections.Generic;
using System.Linq;
using System.Text;

namespace SEDomain.Entities
{
    public class Order : Entity<Order>
    {
        private Product _product;
        private readonly IList<OrderPrint> _orderPrints;
        private readonly IList<NameplateCore> _nameplateCores;
        private readonly IList<CoaReport> _coaReports;
        private readonly IList<NameplatePacking> _nameplatePackings;
        private string _saleOrder;
        private string _mrpNo;
        private string _qtyOrder;
        private string _fgStock;
        private string _qtyProduction;
        private string _price;
        private string _barcode;
        private User _user;
        private DateTime? _addDate;
        private string _status;


        public Order() : this(null)
        {

        }
        public Order(Product product)
        {
            _orderPrints = new List<OrderPrint>();
            _nameplateCores = new List<NameplateCore>();
            _coaReports = new List<CoaReport>();
            _nameplatePackings = new List<NameplatePacking>();
           _product = product;
        }
        public virtual ReadOnlyCollection<OrderPrint> OrderPrints
        {
            get { return new ReadOnlyCollection<OrderPrint>(_orderPrints); }
        }
        public virtual ReadOnlyCollection<NameplateCore> NameplateCores
        {
            get { return new ReadOnlyCollection<NameplateCore>(_nameplateCores); }
        }
        public virtual ReadOnlyCollection<CoaReport> CoaReports
        {
            get { return new ReadOnlyCollection<CoaReport>(_coaReports); }
        }
        public virtual ReadOnlyCollection<NameplatePacking> NameplatePackings
        {
            get { return new ReadOnlyCollection<NameplatePacking>(_nameplatePackings); }
        }
        public virtual Product Product
        {
            get { return _product; }
            set { _product = value; }
        }
        public virtual string SaleOrder
        {
            get { return _saleOrder; }
            set { _saleOrder = value; }
        }
        public virtual string MrpNo
        {
            get { return _mrpNo; }
            set { _mrpNo = value; }
        }
        public virtual string QtyOrder
        {
            get { return _qtyOrder; }
            set { _qtyOrder = value; }
        }
        public virtual string FgStock
        {
            get { return _fgStock; }
            set { _fgStock = value; }
        }
        public virtual string QtyProduction
        {
            get { return _qtyProduction; }
            set { _qtyProduction = value; }
        }
        public virtual string Price
        {
            get { return _price; }
            set { _price = value; }
        }
        public virtual string Barcode
        {
            get { return _barcode; }
            set { _barcode = value; }
        }
        public virtual DateTime? AddDate
        {
            get { return _addDate; }
            set { _addDate = value; }
        }
        public virtual string Status
        {
            get { return _status; }
            set { _status = value; }
        }

        public virtual User User
        {
            get { return _user; }
            set { _user = value; }
        }
    }
}
